#ifndef __COMMANDFACTORY__H
#define __COMMANDFACTORY__H

#include "ICommand.h"
#include <map>
#include <memory>


class MainWindow;

enum MAINWINDOW_COMMAND
{
	ABOUT,
	MAIN_EXIT,
};

class CommandFactory
{
	CommandFactory() {}
public:
private:
	static std::map<int, std::shared_ptr<ICommand>> commandMap_;
public:
	static std::shared_ptr<ICommand> createMainWindowCommand(int, MainWindow* window = NULL);
private:
	static std::shared_ptr<ICommand> createExitCommand(MainWindow*);
};
#endif//__COMMANDFACTORY__H
